/*
 * Copyright (c) zhg2yqq.com Corp.
 * All Rights Reserved.
 */
package com.zhg2yqq.wheels.mvc.protection;

import org.aspectj.lang.JoinPoint;

/**
 * @author zhg2yqq, 2023年3月22日
 * @version zhg2yqq v1.0
 */
public interface IPreventResubmitService {
    /**
     * 检查请求重复提交，如果未重复加入缓存，重复抛异常
     *
     * @param preventResubmit 注解
     * @param point           方法
     */
    void preResubmit(PreventResubmit preventResubmit, JoinPoint point) throws Throwable;

    /**
     * 删除缓存，用于未重复时执行方法异常，清除无效的重复缓存，默认不做任何处理
     *
     * @param preventResubmit 注解
     */
    default void removeResubmit(PreventResubmit preventResubmit, JoinPoint point) {
    }
}
